/**

OTree

An OTree is not designed to provide efficient querying of the data
that it contains.  Instead, it is a structure that stores hierarchical
classifications of objects in a tree.  It it backed by indexing
structures that are appropriate to the problem at hand.  (B-Tree,
M-Tree and array lookups will be the three initially supported
indexing methods.)


The indexes that back the OTree return query results in the form of a
subtree wrapped in a query / iterator filter.  This allows inexpensive
indexing of substructures, both in terms of memory allocation and
processor time, provided that the parent structure has already been indexed.

Finally, multiple OTrees may be linked together on a node by node basis.  This allows graph representations to be produced by pruning the trees to the desired resolution and/or filtering by some fields in the metaData object.  Then you follow linkages across nodes.

**/


